Modern Fortran Revived as the Language of Scientific Parallel Computing
نویسنده
چکیده
The Fortran (FORmula TRANslating) computer language was the result of a project begun by John Backus at IBM in 1954. The goal of this project was to provide a way for programmers to express mathematical formulas through a formalism that computers could translate into machine instructions. Initially there was a great deal of skepticism about the efficacy of such a scheme. “How,’’ the scientists asked, “would anyone be able to tolerate the inefficiencies that would result from compiled code?’’ But, as it turned out, the first compilers were surprisingly good, and programmers were able, for the first time, to express mathematics in a high-level computer language. Fortran has evolved continually over the years in response to the needs of users, particularly in the areas of mathematical expressivity, program maintainability, hardware control (such as I/O), and, of course, code optimizations. In the meantime, other languages such as C and C11 have been designed to better meet the nonmathematical aspects of software design, such as graphical interfaces and complex logical layouts. These languages have caught on and have gradually begun to erode the scientific/engineering Fortran code base. By the 1980s, pronouncements of the “death of Fortran” prompted language designers to propose extensions to Fortran that would incorporate the best features of other high-level languages and, in addition, provide new levels of mathematical expressivity popular on supercomputers such as the CYBER 205 and the CRAY systems. This language became standardized as Fortran 90 (ISO/IEC 1539: 1991; ANSI X3.1981992). At the present time, Fortran 95, which includes many of the parallelization features of High Performance Fortran discussed later in this paper, is in the final stages of standardization. It is not yet clear whether the modernization of Fortran can, of itself, stem the C tide. However, I will demonstrate in this paper that modern Fortran is a viable mainstream language for parallelism. It is true that parallelism is not yet part of the scientific programming mainstream. However, it seems likely that, with the scientists’ never-ending thirst for affordable performance, parallelism will become much more common—especially
منابع مشابه
HPJava: Java for Data Parallel Programming
Today we see a healthy diversity of projects aiming to harness Java for scientific (or “Grande”) computing. A number of these approaches were reviewed in a recent article in this series. In this article we will focus instead on one particular project of this kind, ongoing at our labs in Indiana University. The HPJava project aims to support scientific and parallel computing in a modern object-o...
متن کاملIrregular computations in Fortran - expression and implementation strategies
Modern dialects of Fortran enjoy wide use and good support on highperformance computers as performance-oriented programming languages. By providing the ability to express nested data parallelism, modern Fortran dialects enable irregular computations to be incorporated into existing applications with minimal rewriting and without sacrificing performance within the regular portions of the applica...
متن کاملFortran programming language and Scientific Programming: 50 Years of mutual growth
This special issue of Scientific Programming is devoted to celebration of fifty years of mutual and remarkable growth of both scientific programming and its primary language, Fortran. In this brief introduction, we will remark on the past, the present and the future of Fortran and summarize the papers included in this issue. Although the first specification of the Fortran language was released ...
متن کاملExpressing Irregular Computations in Modern Fortran Dialects
Modern dialects of Fortran enjoy wide use and good support on highperformance computers as performance-oriented programming languages. By providing the ability to express nested data parallelism in Fortran, we enable irregular computations to be incorporated into existing applications with minimal rewriting and without sacrificing performance within the regular portions of the application. Sinc...
متن کاملLanguage Interoperability for High-Performance Parallel Scientific Components
With the increasing complexity and interdisciplinary nature of scientific applications, code reuse is becoming increasingly important in scientific computing. One method for facilitating code reuse is the use of components technologies [16, 17, 91, which have been used widely in industry. However, components have only recently worked their way into scientific computing [2, 1, 11, 181. Language ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Digital Technical Journal
دوره 8 شماره
صفحات -
تاریخ انتشار 1996